package com.jt.controller;/**
 * @Author 金帮嘉诚 @Date 2021-08-07 星期六 10:30
 */
/*本类用于测试*/

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 知识点
 * 暂未实现任何功能
 */
@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {

    @Autowired
    private FileService fileService;


    /**
     * 文件上传业务接口
     * 请求路径: http://localhost:8091/file/upload
     * 请求类型: post
     * 请求参数:2进制file
     * 返回值:SysResult(ImageVO)
     * 知识回顾 :流
     * 高级API SpringMVC 针对流 MultipartFile
     * 文件上传步骤:
     * 1.获取文件名称
     * 2.准备目录
     * 3.准备全文件路径*
     * 4.实现上传*
     */
    @PostMapping("/upload")
    public SysResult upload(MultipartFile file) throws IOException {
        //案例 只是演示主要流程:
//        //1.动态获取文件名称
//        String fileName=file.getOriginalFilename();
//        //2.准备文件目录 注意Linux系统不能识别\\ 所以不要用\\
//        String dirPath= "E://images";
//        File dirFile = new File(dirPath);
//        if (!dirFile.exists()){
//            //创建多级目录
//            dirFile.mkdirs();
//        }
//        //3.拼接文件路径
//        String filePath=dirPath+"/"+fileName;
//        //4.实现文件上传
//        file.transferTo(new File(filePath));
//        return SysResult.success();


        ImageVO imageVo = fileService.upload(file);
        if (imageVo != null) {
            return SysResult.success(imageVo);
        }
        return SysResult.fail();

    }

    /**
     * 文件删除业务接口
     * 请求路径: http://localhost:8091/file/deleteFile
     * 请求类型: delete
     * 请求参数:virtualPath
     * 返回值:SysResult
     */
    @DeleteMapping("/deleteFile")
    public SysResult deleteFile(String virtualPath) {
        Integer delete = fileService.deleteFile(virtualPath);
        return SysResult.success(delete);
//        return null;
    }


}
